package com.fjl.array.leetcode14;

/**
 * @Description
 * @Author: 01195
 * @Date: 2025/3/14 17:42
 */
/*
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀，返回空字符串 ""。
示例 1：
    输入：strs = ["flower","flow","flight"]
    输出："fl"
示例 2：
    输入：strs = ["dog","racecar","car"]
    输出：""
    解释：输入不存在公共前缀。
 */
public class Clazz {
    public String longestCommonPrefix(String[] strs) {
        int cols = strs[0].length();
        // 以第一个字符串为参照物
        String s0 = strs[0];
        // 从左到右遍历 strs 的每一列。
        for (int col = 0; col < cols; col++) {
            char ch = s0.charAt(col);
            // 遍历行
            for (String str : strs) {
                if (col == str.length() // strs的每个字符串不是等长的，所以col可能>=str.length()
                        || str.charAt(col) != ch // 以第一行的col列字母为参照物
                ) {
                    return s0.substring(0, col);
                }
            }
        }
        return s0;
    }
}
